﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Monopoly.Model
{
    public class Spiller
    {
        private string navn;
        private int kasse;
        private Brik brik;
        private Bræt bræt;
        private Terninger[] terninger;
        Terninger t;
        private List<Felt> mineFelter;

        

        
        public Spiller(string navn, string farve, Bræt bræt)
        {
            this.navn = navn;
            this.kasse = 30000;
            t = new Terninger();
            this.terninger = new Terninger[2];
            this.bræt = bræt;
            this.brik = new Brik(farve, bræt.StartFelt());
            this.mineFelter = new List<Felt>();
        }

        public void Tur()
        {
            int rollTotal = 0;
            for (int i = 0; i < terninger.Length; i++)
            {
                t.Kast();
                terninger[i] = t;
                rollTotal += terninger[i].TerningsVærdi;
            }
            Felt nyPosition = bræt.GetFelt(this.brik.Position, rollTotal);
            brik.Position = nyPosition;
        }
        public Spiller NæsteSpiller(Spiller aktuelleSpiller, List<Spiller> spillerListe)
        {
            for (int i = spillerListe.IndexOf(aktuelleSpiller); i < spillerListe.Count; i++)
            {

                try
                {
                    return spillerListe[i+1];
                }
                catch (Exception)
                {
                    return spillerListe[0];
                }
            }
            return aktuelleSpiller;
           
        }

        public string VisFelt()
        {
            string tekst = String.Empty;
            foreach (var item in mineFelter)
            {
                tekst += item.Navn + "\r\n";
            }
            return tekst;
        }

        
        public Brik Brik
        {
            get { return brik; }
            set { brik = value; }
        }
        public int Kasse
        {
            get { return kasse; }
            set { kasse = value; }
        }
        

        public string Navn
        {
            get { return navn; }
            set { navn = value; }
        }
        public List<Felt> MineFelter
        {
            get { return mineFelter; }
            set { mineFelter = value; }
        }


        public Terninger T
        {
            get { return t; }
            set { t = value; }
        }
    }
}
